else
{
domain_pause(d);
+ if(d->processor != cpu % smp_num_cpus)
+ set_bit(DF_MIGRATED, &d->flags);
set_bit(DF_CPUPINNED, &d->flags);
d->processor = cpu % smp_num_cpus;
domain_unpause(d);
d->wokenup = NOW();
#endif
}
-
+
+ clear_bit(DF_MIGRATED, &d->flags);
+
spin_unlock_irqrestore(&d->state_lock, flags);
}
#define DF_DYING 11 /* Death rattle. */
#define DF_RUNNING 12 /* Currently running on a CPU. */
#define DF_CPUPINNED 13 /* Disables auto-migration. */
+#define DF_MIGRATED 14 /* Domain migrated between CPUs. */
static inline int domain_runnable(struct domain *d)
{